#include<iostream>
#include <sys/types.h>
#include <unistd.h>
#include<stdlib.h>
using namespace std;

// int main()
// {
//     printf("pid : %d\n", getpid());
//     printf("ppid : %d\n", getppid());

//     return 0;
// }


// int main()
// {
//     while(1){     
//     sleep(1);
//     }

//     return 0;
// }

// int main()
// {
//     int ret = fork();

//     if(ret < 0)//创建失败（如系统资源不足），fork() 会在父进程中返回 -1，且不会创建子进程。
//     {
//         perror("fork");
//         return -1;
//     }
//     else if(ret == 0) //子进程 fork() 返回 0，表示当前进程是子进程。
//     {
//         printf("I am a child : %d, ret : %d\n", getpid(), ret);
//     }
//     else //父进程 ret为子节点的进程id fork() 
//          //返回子进程的进程 ID（PID，一个非负整数），用于标识刚刚创建的子进程。
//         printf("I am a father : %d, ret : %d\n", getppid(), ret);

//     sleep(1);

//     return 0;
// }



// int main()
// {
//     pid_t id = fork();
//     if(id < 0) 
//     {
//         perror("fork");
//         return -1;
//     }
//     else if(id > 0) //father
//     {
//         printf("parent[%d] is sleeping...\n", getpid());
//         sleep(30);
//     }
//     else //child
//     {
//         printf("child[%d] is beginning z...\n", getpid());
//         sleep(5);
//         exit(EXIT_SUCCESS);
//     }

//     return 0;
// }


// int main() {
//     pid_t pid = fork();  // 创建子进程

//     if (pid < 0) {
//         perror("fork failed");
//         exit(EXIT_FAILURE);
//     }

//     if (pid == 0) {
//         // 子进程：执行后立即退出
//         printf("子进程 (PID: %d) 启动，即将退出...\n", getpid());
//         sleep(1);  // 确保父进程有时间运行
//         exit(EXIT_SUCCESS);  // 子进程退出
//     } else {
//         // 父进程：不回收子进程，且长时间运行
//         printf("父进程 (PID: %d) 启动,子进程PID: %d\n", getpid(), pid);
//         printf("父进程将休眠30秒,期间子进程会成为僵尸进程\n");
//         sleep(30);  // 父进程休眠，不调用wait()
        
//         // 休眠结束后，父进程退出（此时僵尸进程会被系统回收）
//         printf("父进程退出\n");
//     }

//     return 0;
// }

// int main()
// {
//     pid_t id = fork();
//     if(id < 0) 
//     {
//         perror("fork");
//         exit(EXIT_FAILURE);
//     }
//     else if(id == 0) //child
//     {
//         printf("child process %d\n", getpid());
//         sleep(30);
//     }

//     else//father
//     {
//         printf("father process %d\n", getpid());
//         sleep(5);
//         exit(EXIT_SUCCESS);

//     }
//     return 0;
// }

int main() {
  printf("%s\n", getenv("PATH"));
  return 0;
}
